/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package pe.com.cotelasa.scp.entidad;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.persistence.Basic;
/**
 *
 * @author Jorge
 */
@Entity
@Table(name = "venta_detalle_facturacion",catalog = "bdcotelasa", schema = "cotelasa")
@NamedQueries({
    @NamedQuery(name = "VentaDetalleFacturacion.findAll", query = "SELECT v FROM VentaDetalleFacturacion v"),
    @NamedQuery(name = "VentaDetalleFacturacion.findByNumFactura", query = "SELECT v FROM VentaDetalleFacturacion v WHERE v.ventaDetalleFacturacionPK.numFactura = :numFactura"),
    @NamedQuery(name = "VentaDetalleFacturacion.findByCoddocventa", query = "SELECT v FROM VentaDetalleFacturacion v WHERE v.ventaDetalleFacturacionPK.coddocventa = :coddocventa"),
    @NamedQuery(name = "VentaDetalleFacturacion.findByDescProducto", query = "SELECT v FROM VentaDetalleFacturacion v WHERE v.descProducto = :descProducto"),
    @NamedQuery(name = "VentaDetalleFacturacion.findByCantidad", query = "SELECT v FROM VentaDetalleFacturacion v WHERE v.cantidad = :cantidad"),
    @NamedQuery(name = "VentaDetalleFacturacion.findByPrecUnitario", query = "SELECT v FROM VentaDetalleFacturacion v WHERE v.precUnitario = :precUnitario"),
    @NamedQuery(name = "VentaDetalleFacturacion.findByDescuento", query = "SELECT v FROM VentaDetalleFacturacion v WHERE v.descuento = :descuento"),
    @NamedQuery(name = "VentaDetalleFacturacion.findByTotal", query = "SELECT v FROM VentaDetalleFacturacion v WHERE v.total = :total")})
public class VentaDetalleFacturacion implements Serializable {
    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected VentaDetalleFacturacionPK ventaDetalleFacturacionPK;
    @Column(name = "desc_producto")
    private String descProducto;
    
    // @Max(value=?)  @Min(value=?)//if you know range of your decimal fields consider using these annotations to enforce field validation
    @Column(name = "cantidad")
    private Double cantidad;
    
    @Column(name = "prec_unitario")
    private Double precUnitario;
    
    @Column(name = "descuento")
    private Double descuento;
    
    @Column(name = "partida")
    private String partida;
    
    @Column(name = "total")
    private Double total;
    
    @Basic(optional = false)
    @Column(name = "usr_creacion")
    private String usrCreacion;
    
    @Basic(optional = false)
    @Column(name = "fec_creacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecCreacion;
    
    @Column(name = "usr_modificacion")
    private String usrModificacion;
    
    @Column(name = "fec_modificacion")
    @Temporal(TemporalType.TIMESTAMP)
    private Date fecModificacion;
    
    @Basic(optional = false)
    @Column(name = "estado_registro")
    private char estadoRegistro; 
    
    @Column(name = "grupo_exportacion")
    private String grupoExportacion;
    
    @JoinColumn(name = "coddocventa", referencedColumnName = "coddocventa", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private VentaFacturacion ventaFacturacion;
    
    @JoinColumn(name = "unidad", referencedColumnName = "id")
    @ManyToOne(fetch=FetchType.LAZY)
    private TipoUnidadMinima unidad;
    
    @JoinColumn(name = "codarticulo", referencedColumnName = "id")
    @ManyToOne(fetch=FetchType.LAZY)
    private Articulo codarticulo;
    
    @Column(name="cantidad_empaque")
    private Double cantidadEmpaque;
    
    @Column(name="empaque")
    private String empaque;

    public VentaDetalleFacturacion() {
    }

    public VentaDetalleFacturacion(VentaDetalleFacturacionPK ventaDetalleFacturacionPK) {
        this.ventaDetalleFacturacionPK = ventaDetalleFacturacionPK;
    }

    public VentaDetalleFacturacion(int numFactura, int coddocventa) {
        this.ventaDetalleFacturacionPK = new VentaDetalleFacturacionPK(numFactura, coddocventa);
    }

    public VentaDetalleFacturacionPK getVentaDetalleFacturacionPK() {
        return ventaDetalleFacturacionPK;
    }

    public void setVentaDetalleFacturacionPK(VentaDetalleFacturacionPK ventaDetalleFacturacionPK) {
        this.ventaDetalleFacturacionPK = ventaDetalleFacturacionPK;
    }

    public String getDescProducto() {
        return descProducto;
    }

    public void setDescProducto(String descProducto) {
        this.descProducto = descProducto;
    }

    public Double getCantidad() {
        return cantidad;
    }

    public void setCantidad(Double cantidad) {
        this.cantidad = cantidad;
    }

    public Double getPrecUnitario() {
        return precUnitario;
    }

    public void setPrecUnitario(Double precUnitario) {
        this.precUnitario = precUnitario;
    }

    public Double getDescuento() {
        return descuento;
    }

    public void setDescuento(Double descuento) {
        this.descuento = descuento;
    }

    public Double getTotal() {
        return total;
    }

    public void setTotal(Double total) {
        this.total = total;
    }

  
    public VentaFacturacion getVentaFacturacion() {
        return ventaFacturacion;
    }

    public void setVentaFacturacion(VentaFacturacion ventaFacturacion) {
        this.ventaFacturacion = ventaFacturacion;
    }

    public TipoUnidadMinima getUnidad() {
        return unidad;
    }

    public void setUnidad(TipoUnidadMinima unidad) {
        this.unidad = unidad;
    }

   

    public Articulo getCodarticulo() {
        return codarticulo;
    }

    public void setCodarticulo(Articulo codarticulo) {
        this.codarticulo = codarticulo;
    }

    

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (ventaDetalleFacturacionPK != null ? ventaDetalleFacturacionPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof VentaDetalleFacturacion)) {
            return false;
        }
        VentaDetalleFacturacion other = (VentaDetalleFacturacion) object;
        if ((this.ventaDetalleFacturacionPK == null && other.ventaDetalleFacturacionPK != null) || (this.ventaDetalleFacturacionPK != null && !this.ventaDetalleFacturacionPK.equals(other.ventaDetalleFacturacionPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "pruebas.VentaDetalleFacturacion[ ventaDetalleFacturacionPK=" + ventaDetalleFacturacionPK + " ]";
    }

    public String getPartida() {
        return partida;
    }

    public void setPartida(String partida) {
        this.partida = partida;
    }

    public String getUsrCreacion() {
        return usrCreacion;
    }

    public void setUsrCreacion(String usrCreacion) {
        this.usrCreacion = usrCreacion;
    }

    public Date getFecCreacion() {
        return fecCreacion;
    }

    public void setFecCreacion(Date fecCreacion) {
        this.fecCreacion = fecCreacion;
    }

    public String getUsrModificacion() {
        return usrModificacion;
    }

    public void setUsrModificacion(String usrModificacion) {
        this.usrModificacion = usrModificacion;
    }

    public Date getFecModificacion() {
        return fecModificacion;
    }

    public void setFecModificacion(Date fecModificacion) {
        this.fecModificacion = fecModificacion;
    }

    public char getEstadoRegistro() {
        return estadoRegistro;
    }

    public void setEstadoRegistro(char estadoRegistro) {
        this.estadoRegistro = estadoRegistro;
    }

    public String getGrupoExportacion() {
        return grupoExportacion;
    }

    public void setGrupoExportacion(String grupoExportacion) {
        this.grupoExportacion = grupoExportacion;
    }

    public Double getCantidadEmpaque() {
        return cantidadEmpaque;
    }

    public void setCantidadEmpaque(Double cantidadEmpaque) {
        this.cantidadEmpaque = cantidadEmpaque;
    }

    public String getEmpaque() {
        return empaque;
    }

    public void setEmpaque(String empaque) {
        this.empaque = empaque;
    }
    
}
